# -*- Mode: Python -*-
# vim: filetype=python
#
# SPDX-License-Identifier: GPL-2.0-or-later

##
# @GICCapability:
#
# The struct describes capability for a specific GIC (Generic
# Interrupt Controller) version.  These bits are not only decided by
# QEMU/KVM software version, but also decided by the hardware that the
# program is running upon.
#
# @version: version of GIC to be described.  Currently, only 2 and 3
#     are supported.
#
# @emulated: whether current QEMU/hardware supports emulated GIC
#     device in user space.
#
# @kernel: whether current QEMU/hardware supports hardware accelerated
#     GIC device in kernel.
#
# Since: 2.6
##
{ 'struct': 'GICCapability',
  'data': { 'version': 'int',
            'emulated': 'bool',
            'kernel': 'bool' } }

##
# @query-gic-capabilities:
#
# It will return a list of `GICCapability` objects that describe its
# capability bits.
#
# On non-ARM targets this command will report an error as the GIC
# technology is not applicable.
#
# Since: 2.6
#
# .. qmp-example::
#
#     -> { "execute": "query-gic-capabilities" }
#     <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
#                     { "version": 3, "emulated": false, "kernel": true } ] }
##
{ 'command': 'query-gic-capabilities', 'returns': ['GICCapability'] }
